package ArrayDemo2;

/**
 * Created by sunwei on 2017/10/13
 * Time:8:58
 * 这个类是LowArray类的改进版
 */
public class HighArray {
    private long[] a;
    private int nElems;

    /*
    构造函数
     */
    public HighArray(int max) {
        a=new long[max];
        nElems = 0;
    }

    /*
    查找相应的元素
     */
    public boolean find(long searchKey){
        int j;
        for(j = 0;  j<nElems ; j++) {
            if (a[j]==searchKey) {
                  break;
            }
        }
        if (j==nElems) {
              return false;
        }else {
            return true;
        }
    }

    /*
    插入元素
     */
    public void insert(long value){
        a[nElems] = value;
        nElems++;
    }

    /*
    删除元素
     */
    public boolean delete(long value){
        int j;
        //查找这个元素是否在数组里面
        for(j = 0; j <nElems ; j++) {
            if (a[j]==value) {
                  break;
            }
        }
        //跳出循环时的情况有两种：此时j==nElems（没找到相应的元素）或者找到了相应的元素
        if (j==nElems) {
              System.out.print("没找到要删除的元素");
              return false;
        }else {//找到元素了，就将j后面的元素往前移动，删除这个元素
            for(int k = j; k<nElems ; k++) {
                a[k]=a[k+1];
            }
            nElems --;
            return true;
        }
    }

    /*
    遍历显示数组
     */
    public void display(){
        for(int j = 0; j<nElems ; j++) {
            System.out.print(a[j] + " ");
        }
    }



}
